magiclanternfandomcom-20200223-history
500d VRAM Info
Findings by Coutts RoaldFre's initial VRAM findings can be found here: VRAM/500D I have started to sit down and go through dumps for every mode, to verify the vram addresses and resolutions. I followed the guide on the VRAM/550d page and dumped the 0x0, 0x1 and 0x4 segments twice. I found everything in 4.bin. Odd Findings *When I dumped in 480p video mode (recording and idle), the camera would appear to crash; the mirror flipped down and the screen went black, but the LED was still lit and it continued to dump. It did this while hooked up with HDMI as well, but only while recording. This only happened in 480p mode. *Using a new code update from Alex which allowed mem_spy to filter out just DMA addresses, I was able to find 6 new addresses that were not documented before. They were only present while recording (not idle), and each recording mode had it's own 2 unique addresses. This was using the DMA address 0x8404. When I loaded the dumps I made while recording into img.py, I put the start address as the address that was obtaind from that pointer. I found that the buffer addresses weren't correct, and needed adjusting. I'm not sure what this means, but I'm assuming for now that we should use the addresses I found after fine tuning with img.py. See this post for further explanation. EDIT: '''After testing, the address that I found for 480p from a newly discovered DMA pointer wasn't valid. It was just the HD buffer but offset a little. 1080p and 720p modes both had new addresses though. *When I examined the 720p idle dump (non hdmi), I noticed that 0x41b07800 had a different image than 0x43738800 / 0x43b48800. It wasn't distorted, it was a clean image, so I wonder if I just moved the camera or something. The buffer is still valid, I think I just moved the camera at some point during the dump process. '''EDIT: I just dumped this section again with the same results, the image differs as if the camera moved, but it didn't. Very odd... Not sure how to explain this. EDIT: Alex says this could be due to some buffers not being cleared until the next time they are used. I am going to assume that the reason that this is all due to what Alex explained. *Addresses in the 0x46xxxxxxx format often have complimenting buffers at 0x48xxxxxx. Might be more buffers than we expected??? DMA Pointers The following pointers are present in all recording and live view modes. 0x26a8 - Live View Buffers 0x41b07800 / 0x43738800 / 0x43b48800 0x48a0 - HD Buffers 0x46000080 / 0x48000080 No HDMI Monitor Attached 'Live View' The following buffers are present while in live view mode. 0x41b07800 / 0x43738800 / 0x43b48800 *Resolution: 720x424 *Pitch: 1440 *Aspect Ratio: 1.698 0x46000080 / 0x48000080 *Resolution: 928x616 *Pitch: 1856 *Aspect Ratio: 1.506 'Live View x5/x10 Zoom' 0x41b07800 / 0x43738800 / 0x43b48800 *Resolution: 720x424 *Pitch: 1440 *Aspect Ratio: 1.698 0x46000080 / 0x48000080 *Resolution: 944x632 *Pitch: 1888 *Aspect Ratio: 1.494 '1080p Idle' 0x43738800 / 0x43b48800 *Resolution: 720x424 *Pitch: 1440 *Aspect Ratio: 1.698 0x46000080 / 0x48000080 *Resolution: 1576x1048 *Pitch: 3152 *Aspect Ratio: 1.504 '1080p Recording' 0x43738800 / 0x43b48800 *Resolution: 720x424 *Pitch: 1440 *Aspect Ratio: 1.698 0x46000080 / 0x48000080 *Resolution: 1576x1048 *Pitch: 3152 *Aspect Ratio: 1.504 0x46042fb0 / 0x48042fb0 *Resolution: 1576x961 *Pitch: 3152 *Aspect Ratio: 1.640 '720p Idle' 0x43738800 / 0x43b48800 *Resolution: 720x424 *Pitch: 1440 *Aspect Ratio: 1.698 0x46000080 / 0x48000080 *Resolution: 928x616 *Pitch: 1856 *Aspect Ratio: 1.506 '720p Recording' 0x41b07800 / 0x43738800 / 0x43b48800 *Resolution: 720x424 *Pitch: 1440 *Aspect Ratio: 1.698 '------------changed in v1.1.1---------' *''Resolution: 720x425'' *''Pitch: 1440'' *''Aspect Ratio: 1.694'' 0x46000080 / 0x48000080 *Resolution: 928x616 *Pitch: 1856 *Aspect Ratio: 1.506 '-------changed in v1.1.1-----------' *''Resolution: 1576x632'' *''Pitch: 3152'' *''Aspect Ratio: 2.494'' 0x46027000 / 0x48027000 *Resolution: 928x530 *Pitch: 1856 *Aspect Ratio: 1.751 '480p Idle' 0x41b07800 / 0x43738800 / 0x43b48800 *Resolution: 720x424 *Pitch: 1440 *Aspect Ratio: 1.698 0x46000080 / 0x48000080 *Resolution: 928x616 *Pitch: 1856 *Aspect Ratio: 1.506 '480p Recording' 0x43738800 / 0x43b48800 *Resolution: 720x424 *Pitch: 1440 *Aspect Ratio: 1.698 0x46000080 / 0x48000080 *Resolution: 720x480 *Pitch: 1440 *Aspect Ratio: 1.5 HDMI Monitor Attached Note: It has come to my attention that yuv422 buffer resolutions change from monitor to monitor, so there is no way to map this out. So for the next while at least, no support for HDMI will exist. - Coutts